Scroll to navigation

BDFLUSH(2) п═я┐п╨п╬п╡п╬п╢я│я┌п╡п╬ п©я─п╬пЁя─п╟п╪п╪п╦я│я┌п╟ Linux BDFLUSH(2)

п≤п°п╞

bdflush - п╥п╟п©я┐я│п╨п╟п╣я┌, я│п╠я─п╟я│я▀п╡п╟п╣я┌ п╫п╟ п╢п╦я│п╨ п╦п╩п╦ п╫п╟я│я┌я─п╟п╦п╡п╟п╣я┌ я│п╩я┐п╤п╠я┐ п╥п╟п©п╦я│п╦ п╠я┐я└п╣я─п╬п╡ п╨я█я┬п╟

п·п▒п≈п·п═

#include <sys/kdaemon.h>
int bdflush(int func, long *address);
int bdflush(int func, long data);

п·п÷п≤п║п░п²п≤п∙

bdflush() п╥п╟п©я┐я│п╨п╟п╣я┌, я│п╠я─п╟я│я▀п╡п╟п╣я┌ п╫п╟ п╢п╦я│п╨ п╦п╩п╦ п╫п╟я│я┌я─п╟п╦п╡п╟п╣я┌ я│п╩я┐п╤п╠я┐ п╥п╟п©п╦я│п╦ п╠я┐я└п╣я─п╬п╡ п╨я█я┬п╟. п╒п╬п╩я▄п╨п╬ п©я─п╬я├п╣я│я│ я│ п╬п©я─п╣п╢п╣п╩я▒п╫п╫я▀п╪п╦ п©я─п╟п╡п╟п╪п╦ (я│ п╪п╟п╫п╢п╟я┌п╬п╪ CAP_SYS_ADMIN) п╪п╬п╤п╣я┌ п╡я▀п╥п╡п╟я┌я▄ bdflush().

п∙я│п╩п╦ п╥п╫п╟я┤п╣п╫п╦п╣ func п╬я┌я─п╦я├п╟я┌п╣п╩я▄п╫п╬ п╦п╩п╦ 0, п╦ я│п╩я┐п╤п╠п╟ п╫п╣ п╥п╟п©я┐я┴п╣п╫п╟, я┌п╬ bdflush() п╥п╟п©я┐я│п╨п╟п╣я┌ я│п╩я┐п╤п╠я┐ п╦ п╫п╣ п╡п╬п╥п╡я─п╟я┴п╟п╣я┌ я┐п©я─п╟п╡п╩п╣п╫п╦п╣.

п∙я│п╩п╦ п╥п╫п╟я┤п╣п╫п╦п╣ func я─п╟п╡п╫п╬ 1, я┌п╬ п╫п╣п╨п╬я┌п╬я─я▀п╣ "пЁя─я▐п╥п╫я▀п╣" (dirty) п╠я┐я└п╣я─я▀ п╥п╟п©п╦я│я▀п╡п╟я▌я┌я│я▐ п╫п╟ п╢п╦я│п╨.

п∙я│п╩п╦ п╥п╫п╟я┤п╣п╫п╦п╣ func я─п╟п╡п╫п╬ 2 п╦п╩п╦ п╠п╬п╩п╣п╣ п╦ я┤я▒я┌п╫п╬ (п╪п╩п╟п╢я┬п╦п╧ п╠п╦я┌ я─п╟п╡п╣п╫ 0), я┌п╬ п╡ address п╥п╟п╢п╟я▒я┌я│я▐ п╟п╢я─п╣я│ я▐я┤п╣п╧п╨п╦ я─п╟п╥п╪п╣я─п╬п╪ я│ п╢п╩п╦п╫п╫п╬п╣ я│п╩п╬п╡п╬, п╦ п©п╬ я█я┌п╬п╪я┐ п╟п╢я─п╣я│я┐ п╡п╬п╥п╡я─п╟я┴п╟п╣я┌я│я▐ п╢п╩я▐ п╡я▀п╥я▀п╡п╟я▌я┴п╣пЁп╬ п©я─п╬я├п╣я│я│п╟ п©п╟я─п╟п╪п╣я┌я─ п╫п╟я│я┌я─п╬п╧п╨п╦ я│ п╫п╬п╪п╣я─п╬п╪ (func-2)/2.

п∙я│п╩п╦ п╥п╫п╟я┤п╣п╫п╦п╣ func я─п╟п╡п╫п╬ 3 п╦п╩п╦ п╠п╬п╩п╣п╣ п╦ п╫п╣ я┤я▒я┌п╫п╬ (п╪п╩п╟п╢я┬п╦п╧ п╠п╦я┌ я─п╟п╡п╣п╫ 1), я┌п╬ п╟я─пЁя┐п╪п╣п╫я┌ data я▐п╡п╩я▐п╣я┌я│я▐ п╢п╩п╦п╫п╫я▀п╪ я│п╩п╬п╡п╬п╪, п╦ я▐п╢я─п╬ я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌ п╡ я█я┌п╬ п╥п╫п╟я┤п╣п╫п╦п╣ п©п╟я─п╟п╪п╣я┌я─ п╫п╟я│я┌я─п╬п╧п╨п╦ я│ п╫п╬п╪п╣я─п╬п╪ (func-3)/2.

п²п╟п╠п╬я─ п©п╟я─п╟п╪п╣я┌я─п╬п╡ п╦ я─п╟п╥я─п╣я┬я▒п╫п╫я▀я┘ п╢п╦п╟п©п╟п╥п╬п╫п╬п╡ п╦я┘ п╥п╫п╟я┤п╣п╫п╦п╧ п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п╡ я└п╟п╧п╩п╣ fs/buffer.c п╦я│я┘п╬п╢п╫п╬пЁп╬ п╨п╬п╢п╟ я▐п╢я─п╟.

п▓п·п≈п▓п═п░п╘п░п∙п°п·п∙ п≈п²п░п╖п∙п²п≤п∙

п∙я│п╩п╦ п╟я─пЁя┐п╪п╣п╫я┌ func п╬я┌я─п╦я├п╟я┌п╣п╩п╣п╫ п╦п╩п╦ я─п╟п╡п╣п╫ п╫я┐п╩я▌, п╦ я│п╩я┐п╤п╠п╟ п╥п╟п©я┐я│п╨п╟п╣я┌я│я▐ я┐я│п©п╣я┬п╫п╬, я┌п╬ bdflush() п╫п╣ п╡п╬п╥п╡я─п╟я┴п╟п╣я┌ я┐п©я─п╟п╡п╩п╣п╫п╦п╣. п▓ п©я─п╬я┌п╦п╡п╫п╬п╪ я│п╩я┐я┤п╟п╣ п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╥п╟п©я┐я│п╨п╣ п╡п╬п╥п╡я─п╟я┴п╟п╣я┌я│я▐ п╫п╬п╩я▄, п╦ -1 п╡ я│п╩я┐я┤п╟п╣ п╬я┬п╦п╠п╨п╦, п©я─п╦ я█я┌п╬п╪ errno я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌я│я▐ п╡ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╣п╣ п╥п╫п╟я┤п╣п╫п╦п╣.

п·п╗п≤п▒п п≤

п÷п╬п©я▀я┌п╨п╟ п╥п╟п©я┐я│я┌п╦я┌я▄ я│п╩я┐п╤п╠я┐, п╨п╬я┌п╬я─п╟я▐ я┐п╤п╣ п╥п╟п©я┐я┴п╣п╫п╟.
address я┐п╨п╟п╥я▀п╡п╟п╣я┌ п╥п╟ п©я─п╣п╢п╣п╩я▀ п╢п╬я│я┌я┐п©п╫п╬пЁп╬ п╟п╢я─п╣я│п╫п╬пЁп╬ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╟.
п÷п╬п©я▀я┌п╨п╟ п©я─п╬я┤п╦я┌п╟я┌я▄ п╦п╩п╦ п╥п╟п©п╦я│п╟я┌я▄ п©п╟я─п╟п╪п╣я┌я─ я│ п╫п╣п╡п╣я─п╫я▀п╪ п╫п╬п╪п╣я─п╬п╪, п╦п╩п╦ п╥п╟п©п╦я│п╟я┌я▄ п╫п╣п╡п╣я─п╫п╬п╣ п╥п╫п╟я┤п╣п╫п╦п╣.
п▓я▀п╥я▀п╡п╟я▌я┴п╦п╧ п©я─п╬я├п╣я│я│ п╫п╣ п╦п╪п╣п╣я┌ п╪п╟п╫п╢п╟я┌п╟ CAP_SYS_ADMIN.

п║п·п·п╒п▓п∙п╒п║п╒п▓п≤п∙ п║п╒п░п²п■п░п═п╒п░п°

bdflush() п©я─п╦я│я┐я┌я│я┌п╡я┐п╣я┌ я┌п╬п╩я▄п╨п╬ п╡ Linux п╦ п╫п╣ п╢п╬п╩п╤п╫п╟ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐ п╡ п©п╣я─п╣п╫п╬я│п╦п╪я▀я┘ п©я─п╬пЁя─п╟п╪п╪п╟я┘.

п║п°п·п╒п═п≤п╒п∙ п╒п░п п√п∙

fsync(2), sync(2), sync(8), update(8)

2004-06-17 Linux